package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.VO.operate.OperateShareProfitRuleGetVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      分润规则信息管理持久层接口
 * </desc>
 *
 * @createDate 2019/05/20
 */
@Mapper
@Repository
public interface IOperateShareProfitRuleDao {

    /**
     * <desc>
     *      分页获取分润规则信息
     * </desc>
     *
     * @param params 查询参数
     * @return 分润规则信息列表
     * @author wangzhi
     * @createDate 2019/05/20
     */
    List<OperateShareProfitRuleGetVO> getPage(Map<String, Object> params);

    /**
     * <desc>
     *      获取分润规则信息总记录数
     * </desc>
     *
     * @param params 查询参数
     * @return 总记录数
     * @author wangzhi
     * @createDate 2019/05/20
     */
    Integer getRecordCount(Map<String, Object> params);

    /**
     * <desc>
     *      添加
     * </desc>
     *
     * @param map 保存参数集
     * @return 受影响行数
     * @author wangzhi
     * @createDate 2019/05/20
     */
    Integer save(Map<String, Object> map);

    /**
     * <desc>
     *      查询单个分润规则
     * </desc>
     *
     * @param ruleId 分润规则id
     * @return 分润规则
     * @author wangzhi
     * @createDate 2019/05/20
     */
    OperateShareProfitRuleGetVO getOne(@Param("ruleId") String ruleId);

    /**
     * <desc>
     *      修改
     * </desc>
     *
     * @param map 参数集
     * @return 受影响行数
     * @author wangzhi
     * @createDate 2019/05/20
     */
    Integer update(Map<String, Object> map);

    /**
     * <desc>
     *      批量删除分润规则信息
     * </desc>
     *
     * @param ruleIdList 分润规则信息id列表
     * @return 受影响行数
     * @author wangzhi
     * @createDate 2019/05/20
     */
    Integer delete(List<String> ruleIdList);

    /**
     * <desc>
     *      查询列表中分润规则在使用的个数
     * </desc>
     *
     * @param ruleIdList 分润规则信息id列表
     * @return 列表中分润规则在使用的个数
     * @author wangzhi
     * @createDate 2019/05/20
     */
    Integer getInUseCount(List<String> ruleIdList);
}
